<?php 
namespace Common\Model;
use Hdphp\Model\Model;
class User extends Model{
	// 固定写法 操作数据库中的表user
	protected $table='user';
	// $validate 自动验证参数 固定写法
	protected $validate=array(
		array('username','required','用户名不能为空',3,3)
		);
	/**
	 * 验证方法
	 * @return [type] [验证密码]
	 */
	public function login(){
		// 与protected $validate配套使用 验证其里面的内容是否符合要求
		// create() 验证后获取的$this->data 里面只有数据表user中有的字段 
		if (!$this->create()) return false;
		$username=$_POST['username'];
		$password=$_POST['password'];
		// get()获取所有数据
		// find获取1条数据，把其放进 数组$res 中
		$res=$this->where('username',$username)->find();
		if (!$res) {
			// 将错误语句压入error 用getError()获取错误信息
			$this->error='用户名不存在';
			return false;
		}
		// 调用加密方法
		// $password=Q('post.password','','md5');
		$password=$this->encrypt($username,$password);
		// 判断输入密码是否与数据库密码相同
		if ($password!=$res['password']) {
			$this->error='密码错误';
			return false;
		}
		// 验证成功以后 将session写入
		$_SESSION['id']=$res['uid'];
		// p($_SESSION['id']);die;
		return true;
	}
	/**
	 * 密码加密的方法
	 * 
	 */
	protected function encrypt($username,$password){
		return md5(md5($username).md5($password).'houdunwang');
	}
	/**
	 * 修改密码方法
	 *
	 */
	public function changePasswd(){
		// 过滤验证
		$this->validate=array(
			array('password','required','原密码不能为空',3,3),
			array('confirmPassword','required','重复新密码不能为空',3,3),
			// 验证两次密码一致不 固定写法
					array('newPassword','required','新密码不能为空',3,3),
					array('newPassword','confirm:confirmPassword','两次密码不一致',3,3),
			);
		// 获取过滤信息validata 
		if (!$this->create()) return false;
		// select * from user where uid=$_SESSION['id'],将当前数据赋值给$userdata
		$userdata=$this->where('uid',$_SESSION['id'])->find();
		$uname=$userdata['username'];
		// 获取输入的原密码
		$passwd=$_POST['password'];
		// 加密获取的密码
		$passwd=$this->encrypt($uname,$passwd);
		// 与数据库密码比较
		if ($passwd!=$userdata['password']) {
			$this->error='原密码不正确';
			return false;
		}
		// 获取输入的新密码
		$newPassword=$_POST['newPassword'];
		$newPassword=$this->encrypt($uname,$newPassword);
		// p($newPassword);die;
		// 修改当前用户的密码
		$res=$this->where('uid',$_SESSION['id'])->update(array('password'=>$newPassword));
		if (!$res) {
			$this->error="修改密码不成功";
			return false;
		}
		// 修改成功清除SESSION
		session_unset();
		session_destroy();
		// 返出结果
		return true;
	}




}



 ?>